#ifndef __RC5TESTVECTORSSET1__
#define __RC5TESTVECTORSSET1__

#include "../plainkeycipher.h"

// Test vectors from <https://www.cosic.esat.kuleuven.be/nessie/testvectors/bc/rc5/Rc5-128-64.verified.test-vectors>

static const std::vector <PlainKeyCipher> RC5_TEST_VECTORS_SET_1 = {
    std::make_tuple("0000000000000000", "80000000000000000000000000000000", "8F681D7F285CDC2F"),
    std::make_tuple("0000000000000000", "40000000000000000000000000000000", "DC14832CF4FE61A8"),
    std::make_tuple("0000000000000000", "20000000000000000000000000000000", "2F2494A0D96958E7"),
    std::make_tuple("0000000000000000", "10000000000000000000000000000000", "410BCDD35DA0963F"),
    std::make_tuple("0000000000000000", "08000000000000000000000000000000", "0C4C1EC0EA4EA260"),
    std::make_tuple("0000000000000000", "04000000000000000000000000000000", "3BBC9C778EDC72B3"),
    std::make_tuple("0000000000000000", "02000000000000000000000000000000", "06381C693372158D"),
    std::make_tuple("0000000000000000", "01000000000000000000000000000000", "587E3D5E4B11860B"),
    std::make_tuple("0000000000000000", "00800000000000000000000000000000", "D6F60736920D9319"),
    std::make_tuple("0000000000000000", "00400000000000000000000000000000", "2ACB30508A017C5D"),
    std::make_tuple("0000000000000000", "00200000000000000000000000000000", "9F1237DD5B57F140"),
    std::make_tuple("0000000000000000", "00100000000000000000000000000000", "A394956442AFCC43"),
    std::make_tuple("0000000000000000", "00080000000000000000000000000000", "F89DB895C619914B"),
    std::make_tuple("0000000000000000", "00040000000000000000000000000000", "F2FA3F8AD897FE55"),
    std::make_tuple("0000000000000000", "00020000000000000000000000000000", "37A7CF80BBA7ED28"),
    std::make_tuple("0000000000000000", "00010000000000000000000000000000", "B4D3613F370CDD26"),
    std::make_tuple("0000000000000000", "00008000000000000000000000000000", "CF6FA85F7D599EED"),
    std::make_tuple("0000000000000000", "00004000000000000000000000000000", "F52C5328B8B73CC2"),
    std::make_tuple("0000000000000000", "00002000000000000000000000000000", "655AEDB550850AF1"),
    std::make_tuple("0000000000000000", "00001000000000000000000000000000", "8D695A777ABC21CE"),
    std::make_tuple("0000000000000000", "00000800000000000000000000000000", "E493DE948CA27B44"),
    std::make_tuple("0000000000000000", "00000400000000000000000000000000", "929BE63E4B0BDC6D"),
    std::make_tuple("0000000000000000", "00000200000000000000000000000000", "72926639928E2E3B"),
    std::make_tuple("0000000000000000", "00000100000000000000000000000000", "A47330C510E3F48A"),
    std::make_tuple("0000000000000000", "00000080000000000000000000000000", "DDF4F2E1733FE495"),
    std::make_tuple("0000000000000000", "00000040000000000000000000000000", "C240C78F92A219B8"),
    std::make_tuple("0000000000000000", "00000020000000000000000000000000", "4ADC682FC6ACBFAD"),
    std::make_tuple("0000000000000000", "00000010000000000000000000000000", "57C7CE07E9CA2BC7"),
    std::make_tuple("0000000000000000", "00000008000000000000000000000000", "34470680FCD4D9CB"),
    std::make_tuple("0000000000000000", "00000004000000000000000000000000", "9A6FB9620B79245F"),
    std::make_tuple("0000000000000000", "00000002000000000000000000000000", "B275A64B37EAF914"),
    std::make_tuple("0000000000000000", "00000001000000000000000000000000", "AEDA56A5190042CE"),
    std::make_tuple("0000000000000000", "00000000800000000000000000000000", "AE861288A7D664D4"),
    std::make_tuple("0000000000000000", "00000000400000000000000000000000", "2C058DA9A41A2604"),
    std::make_tuple("0000000000000000", "00000000200000000000000000000000", "D2F4F442FB27EF3E"),
    std::make_tuple("0000000000000000", "00000000100000000000000000000000", "4A51C6519BA9F04E"),
    std::make_tuple("0000000000000000", "00000000080000000000000000000000", "638F7E9A86AC3FF6"),
    std::make_tuple("0000000000000000", "00000000040000000000000000000000", "AADE1A8BB1DDE268"),
    std::make_tuple("0000000000000000", "00000000020000000000000000000000", "0A875A87E6F2AB87"),
    std::make_tuple("0000000000000000", "00000000010000000000000000000000", "CDCA436661D1EDD1"),
    std::make_tuple("0000000000000000", "00000000008000000000000000000000", "B4BA907F4E6C3F63"),
    std::make_tuple("0000000000000000", "00000000004000000000000000000000", "7790DF95D2FA15CB"),
    std::make_tuple("0000000000000000", "00000000002000000000000000000000", "D78C795A3C2C288B"),
    std::make_tuple("0000000000000000", "00000000001000000000000000000000", "B491EB3DEE1A2EE2"),
    std::make_tuple("0000000000000000", "00000000000800000000000000000000", "E2F2146284D28F74"),
    std::make_tuple("0000000000000000", "00000000000400000000000000000000", "F7BB41B070148B35"),
    std::make_tuple("0000000000000000", "00000000000200000000000000000000", "ADB84CCAD2121BE5"),
    std::make_tuple("0000000000000000", "00000000000100000000000000000000", "800D7FA733B9960C"),
    std::make_tuple("0000000000000000", "00000000000080000000000000000000", "0FE00A54D35ED35E"),
    std::make_tuple("0000000000000000", "00000000000040000000000000000000", "0E53E0B6465D8895"),
    std::make_tuple("0000000000000000", "00000000000020000000000000000000", "01907DF00C43D69C"),
    std::make_tuple("0000000000000000", "00000000000010000000000000000000", "87E399F67357FEE0"),
    std::make_tuple("0000000000000000", "00000000000008000000000000000000", "DCBCCE80E64D7000"),
    std::make_tuple("0000000000000000", "00000000000004000000000000000000", "93B87003240DFF08"),
    std::make_tuple("0000000000000000", "00000000000002000000000000000000", "89555942AE9529CA"),
    std::make_tuple("0000000000000000", "00000000000001000000000000000000", "1AEB38B99495A0CB"),
    std::make_tuple("0000000000000000", "00000000000000800000000000000000", "5DC10990BF7FEAF3"),
    std::make_tuple("0000000000000000", "00000000000000400000000000000000", "5FF336E6E09E151F"),
    std::make_tuple("0000000000000000", "00000000000000200000000000000000", "E4867C31A53F278C"),
    std::make_tuple("0000000000000000", "00000000000000100000000000000000", "AE2D56B443FFBBB0"),
    std::make_tuple("0000000000000000", "00000000000000080000000000000000", "E4B0930CDEA092BF"),
    std::make_tuple("0000000000000000", "00000000000000040000000000000000", "2BD89729A3D0C3BB"),
    std::make_tuple("0000000000000000", "00000000000000020000000000000000", "23ED08C5F4DC6049"),
    std::make_tuple("0000000000000000", "00000000000000010000000000000000", "8FC62B5984577752"),
    std::make_tuple("0000000000000000", "00000000000000008000000000000000", "14613DCC1ABE7A39"),
    std::make_tuple("0000000000000000", "00000000000000004000000000000000", "5E7A901B9FDE2296"),
    std::make_tuple("0000000000000000", "00000000000000002000000000000000", "C4077FCD04CF4870"),
    std::make_tuple("0000000000000000", "00000000000000001000000000000000", "DF7BE5B6876678ED"),
    std::make_tuple("0000000000000000", "00000000000000000800000000000000", "5B8942F5FEA33765"),
    std::make_tuple("0000000000000000", "00000000000000000400000000000000", "994764B14447574B"),
    std::make_tuple("0000000000000000", "00000000000000000200000000000000", "F63BEA609AB9653A"),
    std::make_tuple("0000000000000000", "00000000000000000100000000000000", "6825EFBE4FBCB333"),
    std::make_tuple("0000000000000000", "00000000000000000080000000000000", "BE36BFBF6EAFD879"),
    std::make_tuple("0000000000000000", "00000000000000000040000000000000", "A667934F8149AF84"),
    std::make_tuple("0000000000000000", "00000000000000000020000000000000", "0CFE855287BE997F"),
    std::make_tuple("0000000000000000", "00000000000000000010000000000000", "CA0EB8DFB608C3B8"),
    std::make_tuple("0000000000000000", "00000000000000000008000000000000", "6B1018816D2272CD"),
    std::make_tuple("0000000000000000", "00000000000000000004000000000000", "B7469BCF9E90A2C4"),
    std::make_tuple("0000000000000000", "00000000000000000002000000000000", "48AA658A6925C013"),
    std::make_tuple("0000000000000000", "00000000000000000001000000000000", "D9F87504BA1C3FB3"),
    std::make_tuple("0000000000000000", "00000000000000000000800000000000", "172D40D4F436591C"),
    std::make_tuple("0000000000000000", "00000000000000000000400000000000", "6CAC2B66A306CD73"),
    std::make_tuple("0000000000000000", "00000000000000000000200000000000", "21D7330D53E33DE8"),
    std::make_tuple("0000000000000000", "00000000000000000000100000000000", "06B173283475F8E8"),
    std::make_tuple("0000000000000000", "00000000000000000000080000000000", "FAE2841F2E2FE143"),
    std::make_tuple("0000000000000000", "00000000000000000000040000000000", "A7A81A93E3ECBCD5"),
    std::make_tuple("0000000000000000", "00000000000000000000020000000000", "C2A5BE3EF5EC8AB3"),
    std::make_tuple("0000000000000000", "00000000000000000000010000000000", "B5EB779948BA1623"),
    std::make_tuple("0000000000000000", "00000000000000000000008000000000", "961702D18044CB39"),
    std::make_tuple("0000000000000000", "00000000000000000000004000000000", "59B78C8BCB38A286"),
    std::make_tuple("0000000000000000", "00000000000000000000002000000000", "149630BCFCDCE42F"),
    std::make_tuple("0000000000000000", "00000000000000000000001000000000", "31FC84212D821AB8"),
    std::make_tuple("0000000000000000", "00000000000000000000000800000000", "1BC58ADA2D336C1C"),
    std::make_tuple("0000000000000000", "00000000000000000000000400000000", "3F4A3A940AF166C4"),
    std::make_tuple("0000000000000000", "00000000000000000000000200000000", "89753AB2D0CF3F53"),
    std::make_tuple("0000000000000000", "00000000000000000000000100000000", "8D9638633EBCA8B8"),
    std::make_tuple("0000000000000000", "00000000000000000000000080000000", "5FF9CDADED6F3429"),
    std::make_tuple("0000000000000000", "00000000000000000000000040000000", "EE44FA4A9D7A7A05"),
    std::make_tuple("0000000000000000", "00000000000000000000000020000000", "58DB5741FE4BC562"),
    std::make_tuple("0000000000000000", "00000000000000000000000010000000", "1344DD0FC7FA66A2"),
    std::make_tuple("0000000000000000", "00000000000000000000000008000000", "5A26CE40229FC75F"),
    std::make_tuple("0000000000000000", "00000000000000000000000004000000", "6D065E9A2CF3B415"),
    std::make_tuple("0000000000000000", "00000000000000000000000002000000", "61CA46BABA4C8D3A"),
    std::make_tuple("0000000000000000", "00000000000000000000000001000000", "99F140A08FF367C3"),
    std::make_tuple("0000000000000000", "00000000000000000000000000800000", "0B8940BDB11BE345"),
    std::make_tuple("0000000000000000", "00000000000000000000000000400000", "91010133804AC487"),
    std::make_tuple("0000000000000000", "00000000000000000000000000200000", "C78B7A85517B5EEA"),
    std::make_tuple("0000000000000000", "00000000000000000000000000100000", "CF2506728C542E36"),
    std::make_tuple("0000000000000000", "00000000000000000000000000080000", "FF12180870932832"),
    std::make_tuple("0000000000000000", "00000000000000000000000000040000", "6BC57ADDCF695077"),
    std::make_tuple("0000000000000000", "00000000000000000000000000020000", "BC4A809EEED597F2"),
    std::make_tuple("0000000000000000", "00000000000000000000000000010000", "72B52A71970D60B7"),
    std::make_tuple("0000000000000000", "00000000000000000000000000008000", "768E8E52F5B90C82"),
    std::make_tuple("0000000000000000", "00000000000000000000000000004000", "DD251D79E46362A2"),
    std::make_tuple("0000000000000000", "00000000000000000000000000002000", "E243BEB5973FEFC7"),
    std::make_tuple("0000000000000000", "00000000000000000000000000001000", "96CDEBC83DA721B8"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000800", "8ADD462F714EFDBA"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000400", "AC674285B9E4540C"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000200", "1A71A18BE1CDC037"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000100", "0CB4877BA13CFF53"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000080", "A008F7F61A571A86"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000040", "3E26B0CB22D6536F"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000020", "B77C0B07B3277059"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000010", "BAC5409F22A2AA99"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000008", "E7F29B87919049A0"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000004", "95B437506A1F5067"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000002", "7405DF1B9BC65374"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000001", "52489BF5F14F98D2"),
};

#endif // __RC5TESTVECTORSSET1__